﻿#region Copyright (c) 2011, thinktecture (http://www.thinktecture.com)

/*
   thinktecture.UIAnnotations was developed by Jörg Neumann.
   Copyright (c) 2011, thinktecture (http://www.thinktecture.com).
   All rights reserved, comes as-is and without any warranty. Use of this
   source file is governed by the license which is contained in LICENSE.TXT 
   in the distribution.
*/

#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Thinktecture.DataForm
{
    public class DataFormHeader : Control
    {
        static DataFormHeader()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(DataFormHeader), new FrameworkPropertyMetadata(typeof(DataFormHeader)));
        }

        #region MoveFirstImage

        public static readonly DependencyProperty MoveFirstImageProperty =
            DependencyProperty.Register("MoveFirstImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource MoveFirstImage { get { return (ImageSource)GetValue(MoveFirstImageProperty); } set { SetValue(MoveFirstImageProperty, value); } }

        #endregion

        #region MovePreviousImage

        public static readonly DependencyProperty MovePreviousImageProperty =
            DependencyProperty.Register("MovePreviousImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource MovePreviousImage { get { return (ImageSource)GetValue(MovePreviousImageProperty); } set { SetValue(MovePreviousImageProperty, value); } }

        #endregion

        #region MoveNextImage

        public static readonly DependencyProperty MoveNextImageProperty =
            DependencyProperty.Register("MoveNextImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource MoveNextImage { get { return (ImageSource)GetValue(MoveNextImageProperty); } set { SetValue(MoveNextImageProperty, value); } }

        #endregion

        #region MoveLastImage

        public static readonly DependencyProperty MoveLastImageProperty =
            DependencyProperty.Register("MoveLastImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource MoveLastImage { get { return (ImageSource)GetValue(MoveLastImageProperty); } set { SetValue(MoveLastImageProperty, value); } }

        #endregion

        #region AddImage

        public static readonly DependencyProperty AddImageProperty =
            DependencyProperty.Register("AddImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource AddImage { get { return (ImageSource)GetValue(AddImageProperty); } set { SetValue(AddImageProperty, value); } }

        #endregion

        #region RemoveImage

        public static readonly DependencyProperty RemoveImageProperty =
            DependencyProperty.Register("RemoveImage", typeof(ImageSource), typeof(DataFormHeader));
        public ImageSource RemoveImage { get { return (ImageSource)GetValue(RemoveImageProperty); } set { SetValue(RemoveImageProperty, value); } }

        #endregion

        #region ButtonHeight

        public static readonly DependencyProperty ButtonHeightProperty =
            DependencyProperty.Register("ButtonHeight", typeof(double), typeof(DataFormHeader), new PropertyMetadata(double.NaN));
        public double ButtonHeight { get { return (double)GetValue(ButtonHeightProperty); } set { SetValue(ButtonHeightProperty, value); } }

        #endregion

        #region SeparatorHeight

        public static readonly DependencyProperty SeparatorHeightProperty =
            DependencyProperty.Register("SeparatorHeight", typeof(double), typeof(DataFormHeader), new UIPropertyMetadata(double.NaN));
        public double SeparatorHeight { get { return (double)GetValue(SeparatorHeightProperty); } set { SetValue(SeparatorHeightProperty, value); } }

        #endregion

        #region Title

        public static readonly DependencyProperty TitleProperty =
            DependencyProperty.Register("Title", typeof(string), typeof(DataFormHeader));
        public string Title { get { return (string)GetValue(TitleProperty); } set { SetValue(TitleProperty, value); } }

        #endregion
        
    }
}
